package logic;

import java.util.ArrayList;

import data.InterviewContainer;
import data.Interview;

/**
 * Kann InterviewDatenListen nach bestimmten Kriterien filtern.
 * 
 * @author zenjin
 *
 */
public class DataListFilter {

	/**
	 * Erhält einen DataContainer und liefert einen
	 * neuen DataContainer zurück, der nach übereinstimmenden
	 * Kriterien gefiltert ist.
	 * 
	 * @param arg
	 * @param value
	 * @param inputContainer
	 * @return
	 */
	public InterviewContainer FilterByCompNr(
		int value, InterviewContainer inputContainer ) {
		InterviewContainer outputData = new InterviewContainer();
		ArrayList<Interview> inputData = inputContainer.getDataList();
			for( Interview data : inputData ) {
				if( data.getComputerNummer() == value ) {
					outputData.addData(data);
				}
			}
		return outputData;
	}
	/**
	 * Erhält einen DataContainer und liefert einen
	 * neuen DataContainer zurück, der nach übereinstimmenden
	 * Kriterien gefiltert ist.
	 * 
	 * @param arg
	 * @param value
	 * @param inputContainer
	 * @return
	 */
	public InterviewContainer FilterByInterNr( 
			int value, InterviewContainer inputContainer ) {
		InterviewContainer outputData = new InterviewContainer();
		
		ArrayList<Interview> inputData = inputContainer.getDataList();
		for( Interview data : inputData ) {
			if( data.getInterviewerNummer() == value ) {
				outputData.addData(data);
			}
		}
		return outputData;
	}
	
	/**
	 * Erhält einen DataContainer und ermittelt alle unikaten
	 * ComputerNummern.
	 * @param arg
	 * @param dataContainer
	 * @return
	 */
	public ArrayList<Integer> findUniqueCompNr( InterviewContainer dataContainer ) {
		ArrayList<Integer> output = new ArrayList<Integer>();
		ArrayList<Interview> dataList = dataContainer.getDataList();
		for (Interview data : dataList ) {
				if (! output.contains( data.getComputerNummer() )) {
					output.add(data.getComputerNummer());
				}
		}
		return output;
	}
	
	/**
	 * Erhält einen DataContainer und ermittelt alle unikaten
	 * Interviewer Nummern.
	 * @param arg
	 * @param dataContainer
	 * @return
	 */
	public ArrayList<Integer> findUniqueInterNr( InterviewContainer dataContainer ) {
		ArrayList<Integer> output = new ArrayList<Integer>();
		ArrayList<Interview> dataList = dataContainer.getDataList();
		for (Interview data : dataList ) {
				if (! output.contains( data.getInterviewerNummer() )) {
					output.add(data.getInterviewerNummer());
				}
		}
		return output;
	}
	
}